//
//  QMLibManager.h
//  QMCamera
//
//  Created by guoqingwei on 16/7/20.
//  Copyright © 2016年 cvte. All rights reserved.
//

#import <Foundation/Foundation.h>
@import UIKit;
@class QMLibManager;

@protocol QMLibManagerDelegate <NSObject>

@optional
/**
 * 针对一帧图像，成功检测到了边缘，返回4个点数组（CGPoint）
 * 返回的CGPoint需转换到detectSize空间
 */
- (void)libManager:(QMLibManager *)manager didSuccessDetectPoints:(NSArray *)points;

/**
 * 针对一帧图像，没有检测到边缘
 */
- (void)libManagerDidFailDetect:(QMLibManager *)manager;

/**
 * 针对输入的一帧静态图像，输出增强后图像
 */
- (void)libManager:(QMLibManager *)manager didReceiveEnhanceResult:(UIImage *)resultImage;

@end


/**
 * 启明调用核心管理类
 */
@interface QMLibManager : NSObject 

/**
 * 视频的预览区域，等于物理设备的尺寸，返回的四个边缘控制点需要从image size 空间转换至此空间，在detect size 空间绘制捕捉框
 */
@property (nonatomic) CGSize detectSize;

@property (nonatomic, weak) id<QMLibManagerDelegate> delegate;

+ (QMLibManager *)sharedInstance;

/**
 * 开始检测，每隔interval秒，输入一帧图像
 */
- (void)startDetect:(CGFloat)interval;

/**
 * 停止检测
 */
- (void)stopDetect;

//目前只是返回了一个例子
//这里需要调用启明的Lib进行实际处理
//输入为UIImage格式图像数据，各种空间的byte格式均有响应的方法转换为UIImage
//日志会输出处理耗时
- (NSArray *)detectPaperInImage:(UIImage *)imageFrame;

//原图返回
//这里需要调用启明的Lib进行实际处理
//输入为UIImage格式图像数据，各种空间的byte格式均有响应的方法转换为UIImage
//输出为UIImage格式的图像，用于展示
//日志会输出处理耗时
- (UIImage *)enhanceWhiteBoard:(UIImage *)whilteBoardImage;

//原图返回
//这里需要调用启明的Lib进行实际处理
//输入为UIImage格式图像数据，各种空间的byte格式均有响应的方法转换为UIImage
//输出为UIImage格式的图像，用于展示
//日志会输出处理耗时
- (UIImage *)enhanceCommonImage:(UIImage *)commonImage;

@end
